--
-- *****************************************************************
-- CISCO CAT85xx L3 Switch QoS Based Switching MIB
--
-- Feb, 1998 Abhijit Patra
--
-- Copyright (c) 1996-1998 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--

CISCO-C8500-QOS-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, 
        OBJECT-TYPE            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, 
        OBJECT-GROUP           FROM SNMPv2-CONF
        TEXTUAL-CONVENTION,
        TruthValue, 
        RowStatus              FROM SNMPv2-TC
        InterfaceIndexOrZero   FROM CISCO-TC
        ciscoExperiment        FROM CISCO-SMI;


ciscoC8500QoSMIB   MODULE-IDENTITY
     LAST-UPDATED       "9808060000Z"
     ORGANIZATION       "Cisco Systems, Inc."
     CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-8500@cisco.com" 
     DESCRIPTION
        "This MIB module is cisco version for Quality of Service (QoS) based 
        Switching on CAT 85xx series of L3 Switch/Router Platform(s)."
     ::= { ciscoExperiment 38 } -- assigned by cana@cisco.com


c8500QoSMIBObjects OBJECT IDENTIFIER ::= { ciscoC8500QoSMIB 1 }

-- Textual Conventions

C8500QoSPrecedence ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS       current
    DESCRIPTION
    "A value in the range 0..3 indicating the precedence. '0' is the 
    least preferred precedence and '3' is most preferred precedence."
    SYNTAX INTEGER (0..3)

C8500WrrSchedWeight ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS       current
    DESCRIPTION
    "A value in the range 1..15 indicating the Weighted Round Robin (WRR) 
     scheduling  weight. A particular 'precedence' traffic with a  larger 
     weight value, gets larger bandwidth share."
    SYNTAX INTEGER (1..15)

-- Object(s) to Control QoS-based Switching

c8500QoSControl OBJECT IDENTIFIER ::= { c8500QoSMIBObjects 1 }

c8500QoSEnable OBJECT-TYPE 
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
    "Enables or disables the IP precedence based QoS Switching."
    DEFVAL { true }
    ::=  { c8500QoSControl 1}
    
-- Table for Precedence to Weighted Round Robin (WRR) Scheduling Weight 
-- Mapping. 

c8500QoSMap OBJECT IDENTIFIER ::= { c8500QoSMIBObjects 2 }

c8500QoSMapTable OBJECT-TYPE
    SYNTAX SEQUENCE OF C8500QoSMapEntry
    MAX-ACCESS         not-accessible
    STATUS             current
    DESCRIPTION
    "This table maintains the Precedence to Weighted Round Robin (WRR)
     scheduling Weight Mapping."
    ::= { c8500QoSMap 1 }

c8500QoSMapEntry OBJECT-TYPE 
    SYNTAX     C8500QoSMapEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    "An  entry in the L3 Switching Precedence to WRR Mapping Table. Each 
    entry is indexed by the source, destination interface and precedence. 
    When a row is indexed as 0.0.<precedence> it gives the system  level 
    mapping for the given precedence traffic. When a row is  indexed  by 
    s.d.<precedence> it provides the wrr weight for the given precedence 
    traffic from interface s to interface d.  When  a row  is indexed by 
    0.d.<precedence>, it provides the wrr-weight for the given precedence 
    traffic to destination interface d. Also when a  row  is indexed  by 
    s.0.<precedence>, it provides the wrr weight for the given precedence 
    traffic from source interface s. In case of multiple configurations,
    the most-specific configuration takes effect. The interface level 
    configurations overrides the system level configuration."
    INDEX { c8500QoSMapSrcIf, c8500QoSMapDstIf, c8500QoSMapPrecedence }
    ::= { c8500QoSMapTable 1 }

C8500QoSMapEntry ::=
    SEQUENCE {
       c8500QoSMapSrcIf      InterfaceIndexOrZero,
       c8500QoSMapDstIf      InterfaceIndexOrZero,
       c8500QoSMapPrecedence C8500QoSPrecedence,
       c8500QoSMapWrrWeight  C8500WrrSchedWeight,
       c8500QoSMapRowStatus  RowStatus        
    }

c8500QoSMapSrcIf OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    "This specifies the source interface. When specified '0', it implies
    all interfaces as source interface."
    ::= { c8500QoSMapEntry 1 }

c8500QoSMapDstIf OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    "This specifies the destination interface. When specified '0', it 
    implies all interfaces as destination interface."
    ::= { c8500QoSMapEntry 2 }
  
c8500QoSMapPrecedence OBJECT-TYPE 
    SYNTAX     C8500QoSPrecedence
    MAX-ACCESS not-accessible 
    STATUS     current
    DESCRIPTION
    "This specifies the precedence derived from IP precedence field.
    A value in the range 0..3 indicating the precedence. '0' is the 
    least preferred precedence and '3' is most preferred precedence."
    ::= { c8500QoSMapEntry 3 }

c8500QoSMapWrrWeight OBJECT-TYPE 
    SYNTAX     C8500WrrSchedWeight
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
    "This specifies the WRR scheduling weight for the precedence specified.
    The  default values of the WRR weight is 1,2,4,8 respectively for the
    precedence values 0,1,2,3. It is possible to change the values if the
    row status is active."
    ::= { c8500QoSMapEntry 4 }

c8500QoSMapRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
    "This object is used to create a new row or delete an existing row
    in this table."
    ::= { c8500QoSMapEntry 5 }

-- notifications

c8500QoSMIBNotifications OBJECT IDENTIFIER ::= { ciscoC8500QoSMIB 2 }

-- (no notifications are currently defined)

-- conformance information

c8500QoSMIBConformance OBJECT IDENTIFIER ::= { ciscoC8500QoSMIB 3 }
c8500QoSMIBCompliances OBJECT IDENTIFIER ::= { c8500QoSMIBConformance 1 }
c8500QoSMIBGroups      OBJECT IDENTIFIER ::= { c8500QoSMIBConformance 2 }

-- compliance statements

c8500QoSMIBCompliance  MODULE-COMPLIANCE
STATUS  current
    DESCRIPTION
    "The compliance statement for the Cisco L3 Switch/Router
    QoS Based Switching group."
    MODULE  -- this module
    MANDATORY-GROUPS { c8500QoSMIBGroup }
    ::= { c8500QoSMIBCompliances 1 }

-- units of conformance

c8500QoSMIBGroup   OBJECT-GROUP
    OBJECTS { 
        c8500QoSEnable,
        c8500QoSMapWrrWeight,
        c8500QoSMapRowStatus         
    }
    STATUS    current
    DESCRIPTION
    "The Object Group for QoS based Switching"
    ::= { c8500QoSMIBGroups 1 }
 
END